package com.atguigu.gulimail.product;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * 整合MyBatis-Plus
 *     (1)<dependency>
 *             <groupId>com.baomidou</groupId>
 *             <artifactId>mybatis-plus-boot-starter</artifactId>
 *             <version>3.2.0</version>
 *         </dependency>
 *     (2)配置
 *       1 配置数据源
 *        1),在common项目中导入数据库驱动依赖
 *        2），在application.yml配置数据源
 *       2配置MyBatis-Plus
 *         1），使用@MapperScan扫描
 *         2），告诉mybatis-plus sql的xml文件在哪里，需要扫描到
 *         mybatis-plus:
 */
// mapper-locations: classpath*:/mapper/**/*.xml

/**
 *         3)配置主键自增
 */


/**
 *  JSR303
 *  1)给Bean添加校验注解：javax.validation.constraints，并定义自己的message提示
 *  2）开启校验功能@valid
 *  效果：校验错误以后会有默认的响应；
 *  3）给校验的bean后紧跟一个BindingResult，就可以获取到校验的结果
 *  4）分组校验（多场景的复杂校验）
 *          1，@NotBlank(message = "品牌名必须提交",groups = {UpdateGroup.class,AddGroup.class})
 *          给校验注解标注是什么情况需要进行校验
 *          2@Valicated（{AddGroup.class})
 *          3默认没有指定分组的校验注解@NotBlank，在分组校验情况是@Valicated（{AddGroup.class})下不生效
 *  5）自定义校验
 *        1、编写一个自定义的校验注解
 *        2、编写一个自定义的校验器
 *        3、关联自定义的校验器和自定义的校验注解
 */
    //@EnableFeignClients开启远程调用功能
    //("com.atguigu.gulimail.product.feign")表明接口写在哪里
@EnableFeignClients("com.atguigu.gulimail.product.feign")
@EnableDiscoveryClient
@SpringBootApplication
public class GulimailProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimailProductApplication.class, args);
    }

}
